
from flask import Flask
from config import DevelopmentConfig
from flask_wtf.csrf import CSRFProtect
from errorhd import Errorhd
from fhook import Fhook
from flask_pagedown import PageDown

pagedown=PageDown()

def create_app(config=None):
    # create and configure the app
    app = Flask(__name__, static_url_path='/s')

    if config is None:
        # load the instance config, if it exists, when not testing
        app.config.from_pyfile('config.py', silent=True)
    else:
        # 加载传递的config类
        app.config.from_object(config)

    #加载存储在环境变量中的密匙（手动export到环境变量中，避免直接写在代码中）
    app.config.from_envvar('SECRET_SETTING', silent=True)

    pagedown.init_app(app)


    #
    #加载存储在环境变量中的sql信息
    #app.config.from_envvar('SQLALCHEMY_DATABASE_URI',silent=True)
    #返回app（Flask实例）
    return app

test_config=DevelopmentConfig()

app=create_app(test_config)

#调用用于处理状态码的静态方法
Errorhd.errorhd(app)

    # csrf保护
csrf = CSRFProtect(app)


from app import views,filter

import manage

    #钩子
Fhook.flaskhook(app)



    

    